#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
    pid_t pid = fork();
    if (pid > 0)
        exit(0);         // 父进程退出
    setsid();            // 创建新会话
    chdir("/");          // 切换工作目录
    umask(0);            // 重置文件掩码
    close(STDIN_FILENO); // 关闭标准输入输出
    close(STDOUT_FILENO);
    close(STDERR_FILENO);

    int fd;
    while (1)
    {
        // 自动创建日志文件
        fd = open("/tmp/daemon.log", O_WRONLY | O_APPEND | O_CREAT, 0644);
        if (fd == -1)
        {
            perror("open failed");
            exit(1);
        }
        write(fd, "Daemon running\n", 15);
        close(fd);
        sleep(5);
    }
    return 0;
}